DNSコマンドラインツールのdrillをソースコードからコンパイルしてみた
DNSサーバーへ問い合わせるツールとしては BIND に付属する dig が定番です。
dig で足りない機能やDNSSECをいい感じにやりたいときの代替ツールの一つとして、ldns に付属する drill があります。
drill の最新機能を使いたいために、drill をソースコードからインストールする機会があったので、その手順を紹介します。
環境
- Ubuntu 20.04(EC2を利用)
パッケージからインストール
特殊な要件がなければ、ソースコードからインストールする必要はありません。
素直に ldnsutils
パッケージからインストールしましょう。
$ sudo apt install ldnsutils
ソースコードからインストール
やんごとなき理由により、ソースコードからインストールする手順です。
まず、コンパイルに必要なパッケージをインストールします。
$ sudo apt install unzip build-essential libtool libssl-dev
次にソースコードを取得します。
ソースコードは https://github.com/NLnetLabs/ldns で管理されています。 ソースコードを展開します。
git レポジトリを clone しても OK です。
$ curl -L -o ldns.zip https://github.com/NLnetLabs/ldns/archive/refs/heads/develop.zip $ unzip ldns.zip $ cd ldns-develop/
最後に、コンパイルします。
コンパイル手順は README.git にあります。
configure
時に --with-drill
をつけ忘れないようにしてください。
$ libtoolize -ci $ autoreconf -fi $ ./configure --enable-rrtype-svcb-https --with-drill $ make $ sudo make install $ sudo ldconfig # drill は共有ライブラリ LDNS に依存するため
インストールした drill コマンドを確認します。
$ which drill /usr/local/bin/drill $ drill -v drill version 1.7.2 (ldns version 1.7.2) Written by NLnet Labs. Copyright (c) 2004-2008 NLnet Labs. Licensed under the revised BSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
最後に、最新の drill 1.7.2 で追加された HTTPS リソースレコード機能を確認します。
$ drill https cloudflare.com ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 17104 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;; cloudflare.com. IN HTTPS ;; ANSWER SECTION: cloudflare.com. 300 IN HTTPS 1 . alpn=h3-29,h3-28,h3-27,h2 ipv4hint=104.16.132.229,104.16.133.229 ipv6hint=2606:4700::6810:84e5,2606:4700::6810:85e5 ...
めでたしめでたし。